interface Option {
  label: string;
  value: string;
  [key: string]: string;
}

// 表达式相关表格行参数
interface ExpressTableColumn {
  type: string;
  desc: string;
  expression: string;
}

export const ButtonGroup: Array<Option> = [
  {
    label: '公司',
    value: 'company'
  },
  {
    label: '部门',
    value: 'dept'
  },
  {
    label: '用户',
    value: 'user'
  },
  {
    label: '角色',
    value: 'role'
  },
  {
    label: '启动人',
    value: 'starter'
  },
  {
    label: '流程参数',
    value: 'pp'
  }
];

export const TableColumnSetting: Record<string, Array<Option>> = {
  company: [
    {
      label: '公司名称',
      value: 'companyName'
    },
    {
      label: '公司编码',
      value: 'companyCode'
    }
  ],
  dept: [
    {
      label: '部门名称',
      value: 'deptName'
    },
    {
      label: '部门编码',
      value: 'deptCode'
    }
  ],
  role: [
    {
      label: '角色名称',
      value: 'roleName'
    },
    {
      label: '角色编码',
      value: 'roleKey'
    }
  ],
  user: [
    {
      label: '用户ID',
      value: 'userId'
    },
    {
      label: '登陆账号',
      value: 'loginName'
    },
    {
      label: '用户名称',
      value: 'userName'
    }
  ],
  starter: [
    {
      label: '类型',
      value: 'type'
    },
    {
      label: '描述',
      value: 'desc'
    },
    {
      label: '表达式',
      value: 'expression'
    }
  ],
  pp: [
    {
      label: '类型',
      value: 'type'
    },
    {
      label: '描述',
      value: 'desc'
    },
    {
      label: '表达式',
      value: 'expression'
    }
  ]
};

export const StarterTableList: Array<ExpressTableColumn> = [
  {
    type: '用户',
    desc: '流程启动人',
    expression: 'U("${starter.userId}")'
  },
  {
    type: '公司',
    desc: '流程启动人所在公司',
    expression: 'C("${starter.companyCode}")'
  },
  {
    type: '公司',
    desc: '流程启动人所在公司上级公司',
    expression: 'C("${starter.companyPCode}")'
  },
  {
    type: '部门',
    desc: '流程启动人所在部门',
    expression: 'D("${starter.deptCode}")'
  },
  {
    type: '部门',
    desc: '流程启动人所在部门上级部门',
    expression: 'D("${starter.deptPCode}")'
  },
  {
    type: '角色',
    desc: '流程启动人角色',
    expression: 'R("${starter.roleCode}")'
  }
];

export const ParamTableList: Array<ExpressTableColumn> = [
  {
    type: '用户',
    desc: '流程参数ppUserId作为流程启动人ID',
    expression: 'U("${ppUserId}")'
  },
  {
    type: '公司',
    desc: '流程参数ppCompanyCode作为公司编码',
    expression: 'C("${ppCompanyCode}")'
  },
  {
    type: '部门',
    desc: '流程参数ppDeptCode作为部门编码',
    expression: 'D("${ppDeptCode}")'
  },
  {
    type: '角色',
    desc: '流程参数ppRoleCode作为角色编码',
    expression: 'R("${ppRoleCode}")'
  },
  {
    type: '自定义',
    desc: '手动填写(U/C/D/R)和流程参数',
    expression: '?("${?}")'
  }
];
